package org.finesys.system.service;

import java.util.List;

import org.finesys.common.core.module.DeptDataPermissionEntity;
import org.finesys.common.core.module.R;
import org.finesys.common.mp.core.service.BaseService;
import org.finesys.common.security.core.module.AuthUser;
import org.finesys.system.api.entity.SysRole;
import org.finesys.system.api.vo.RoleExcelVO;
import org.springframework.validation.BindingResult;

public interface SysRoleService extends BaseService<SysRole> {


    /**
     * 通过角色ID，删除角色
     *
     * @param roleId
     * @return
     */
    Boolean removeRoleById(Long roleId);

    /**
     * 是否超级管理员
     */
    Boolean isSupperAdmin(Long userId);

    // 通过用户ID，查询角色信息
    List<SysRole> findRolesByUserId(Long userId);

    /**
     * 获取用户数据权限信息
     */
    DeptDataPermissionEntity getDataPermission(AuthUser authUser);

    /**
     * 导入角色
     *
     * @param excelVOList   角色列表
     * @param bindingResult 错误信息列表
     * @return ok fail
     */
    R<?> importRole(List<RoleExcelVO> excelVOList, BindingResult bindingResult);

    /**
     * 查询全部的角色
     *
     * @return list
     */
    List<RoleExcelVO> listRole();
}
